package cn.edu.scau.cmi.ema.dao;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Producer;
import org.springframework.dao.DataAccessException;

import java.util.Set;

public interface ProducerDAO extends JpaDao<Producer> {

	public Producer findProducerById(Integer id) throws DataAccessException;

	public Producer findProducerById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Producer> findProducerByName(String name) throws DataAccessException;

	public Set<Producer> findProducerByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Producer> findProducerByNameContaining(String name_1) throws DataAccessException;

	public Set<Producer> findProducerByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Producer> findProducerByLicense(String license) throws DataAccessException;

	public Set<Producer> findProducerByLicense(String license, int startResult, int maxRows) throws DataAccessException;

	public Set<Producer> findProducerByLicenseContaining(String license_1) throws DataAccessException;

	public Set<Producer> findProducerByLicenseContaining(String license_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Producer> findProducerByDescription(String description) throws DataAccessException;

	public Set<Producer> findProducerByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Producer> findProducerByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Producer> findProducerByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Producer findProducerByPrimaryKey(Integer id) throws DataAccessException;

	public Producer findProducerByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Producer> findProducersByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Producer> findAllProducers() throws DataAccessException;

	public Set<Producer> findAllProducers(int startResult, int maxRows) throws DataAccessException;

	public Set<Producer> findProducersByAddress(Integer addressId, int start, int max);

	public Set<Producer> findProducerByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Producer> findProducersByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Producer findProducerByPhysicalPrimaryKey(String name, Integer addressId) throws DataAccessException;

	public Producer findProducerByPhysicalPrimaryKey(String name, Integer addressId, int startResult, int maxRows)
			throws DataAccessException;
}
